home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1992 Stan Burton
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Stan Burton not be used
- * in advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission. I make no representations
- * about the suitability of this software for any purpose. It is
- * provided "as is" without express or implied warranty.
- *
- * THE ABOVE-NAMED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT
- * SHALL STAN BURTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- *
- * Author:
- * Stan Burton
- *
- * 1978 26 St. SE
- * Medicine Hat, AB, CANADA
- * T1A 2G8
- */
-
- SOME OF THESE PROGRAMS REQUIRE AMIGADOS 2.0
-
- slink requires V2.0, slink1.3 is a slower AmigaDOS V1.3 compatible
- replacement for slink. All other programs are V1.3 and 2.0 compatible.
-
-
- INSTALLATION
-
- Installation is simple. If you are reading this, and logically you must
- be, then step 1 is done.
- 2. The directory containing this file and the other files unpacked from
- the archive should be added to your path.
- 3. Assign ADev11: to this directory. This is required mainly for the
- C compiler when released.
- 4. Read the docs! I know you won't until you run into trouble, but make
- sure you have read them before you come to me for help.
-
-
- COMMON PROBLEMS
-
- slink reports unknown hunk type
- the assembler may have been aborted leaving a partial file
- the assembler source file may have code outside of a segment
- sc11 reports a problem in byte_length
- certain errors in the C source file may cause SC11 to emit
- 68000 instructions. For example
- char c, *chr_ptr;
- c = *(char *)*chr_ptr;
- this may be a legitimate bug. If there is nothing wrong
- with the C source, reduce the source file as much as
- possible and send it to me.
-
-
- RELEASE CHANGES
-
- KNOWN BUGS ---------------------------------
- SAsm - a DC.l with a symbol can cause assembler to hang
- the docs should have elaborative error message descriptions
- SDis requires at least one non-executable byte after the last executable
- opcode in memory or it will not print out the disassembled data
-
- 1.2 ----------------------------------------
- HCload was reworked in many ways by its original author Ron Eirich.
- slink - added a new map mode to the map output. This displays where, in
- memory, all the hunks from all the modules were placed.
- SDis was in far worse shape than I knew. Many bug fixes and improvements.
- sasm mishandled direct references to XREF'd symbols by instructions
- having a prebyte
- slink reports of address out of range now include the hunk relative
- address AND the module name AND the absolute address
- SAsm - use of an EQUated symbol as the indexed offset or direct address
- of a BSET or BCLR could, in some cases, cause an unusable .o file
- to be produced.
- lib11.lib new functions for printing in octal are __put_oct_str_sm,
- __put_oct_str, __put_oct_sm, __put_oct.
- lib11.lib all put_functions now use a symbol called __z_blank that is
- a leading zero blanking (lzb) flag/counter. Its value is the number of
- leading digits that you want to consider using lzb on. For example,
- these values printed with _put_asc (a word (5 digit) routine)
- __z_blank | value = 99 | value = 9 | value = 0
- ----------|------------|-----------|----------
- 3 | 99 | 09 | 00
- 4 | 99 | 9 | 0
- 5 | 99 | 9 |
- Normally with a 5 digit routine you would use __z_blank = 4;
- lib11.lib sm functions __put_asc_sm, __put_hex_sm, __put_asc_str_sm and
- __put_hex_str_sm now accept the value in the B register. There are
- new functions __put_asc_usm, __put_asc_str_usm and.
- SAsm - fcb and fdb did not treat constants the same as DC.b, particulary
- with respect to symbols and XREFs.
- SAsm - fixed a long standing bug in branches to labels in the second or
- later sections of a segment within a module. This could have produced
- incorrect code in some cases in others it would appear as a branch out
- of range error. This also affected the use of the '.' symbol.
- lib11.lib all functions are now preceeded by __ (assembler level). Done
- for compatibility with C environment.
- lib11.lib the functions put_asc, put_asc_sm, put_asc_u, put_hex and
- put_hex_sm now modify the X register. There are also new versions
- put_asc_str, put_asc_str_sm, put_asc_str_u that put the result in the
- string pointed to by the X register input.
- SAsm now accepts the .z force on XREF and SEG. This causes all symbols
- defined by such an XREF or declared in such a segment to use zero page
- addressing where applicable. At the same time the restriction on
- automatic generation of page zero references with constant (not symbolic)
- addresses is lifted.
- slink has been changed to apply special treatment to segments with the
- name IDATA. (see docs for more details)
- SAsm reported the wrong version number while running
- SAsm undefined symbols were reported obliquely, due to a change in R1.1 I
- believe.
- SAsm would not allow a symbol to be XDEF'd after it was defined.
- SAsm an error resulting from a change just prior to the original release
- made it impossible to successfully reuse a segment within the same
- source file.
- SAsm (HC11) has been modified to accept three new pseudo-mnemonics. They
- are ANDD, EORD, ORD from the 68HC16 instruction set. They produce, in
- the case of ANDD, an ANDB followed by an ANDA. Therefore the result
- is correct but only the N bit of the CCR flags is correct. The
- mnemonics are valid with all HC11 addressing modes. This change was
- made to prepare for the C compiler and was done in the assembler
- because it could not be done with macros.
- 1.1 ----------------------------------------
- SDis became confused if the S-record file to be dis-assembled contained a
- value for address FFFF. This would usually result in a crash.
- SDis default for (y/N) question would default to Y instead
- SAsm failed to recognize that a negative number or expression result >= -128
- could fit into an 8 bit immediate operand resulting in an illegal
- addressing mode error for instructions such as this.
- ldab #1-2
- SAsm - Minor improvement in pass handling under special conditions
- SAsm - Unary operations and binary operations involving a single XREF'd symbol
- and an operator other than addition are not legal, but were not detected
- by the assembler and produced incorrect code.
- It was not noted anywhere in the documents that some of the programs require
- AmigaDOS 2.0. Now only slink does and there is a slink1.3 replacement
- slink was accessing memory on an odd boundary which would cause a crash on
- 68000 68010 processors
- The 68HC11 registers include file 68HC11.inc is now included in the release.
- It is not quite complete yet ... as time permits.
- A new utility, MHex, has been added which allows conversion of S record
- files to straight binary. The source is also included in case you have
- a particular format requirement. I would appreciate receiving any such
- conversions and I will try to make one grand unified utility out of them.
- A simple monitor program is provided, along with source, I like it because
- its extensible command set allows me to easily develop command driven
- programs.
- New library functions for printing values as hex ascii are available.
- HCload was modified to work with any serial-type device and any unit number.
- Two of the listed library functions were somehow left out of the library.
-
- 1.0 ----------------------------------------
- SAsm, slink and slib now handle 68HC16 mnemonics and addressing modes as
- far as I have been able to test. I do not have a 68HC16 processor and
- have relied on Motorola printed documents.
-
- The docs files other than the .ps file are probably out of date. They are
- included only for those who don't have access to a postscript printer or
- converter.
-
- I can be reached at:
- internet sburton@dres.dnd.ca <= NOTE: change
- BIX sburton
- mail Stan Burton
- 1978 26 St. SE
- Medicine Hat, AB CANADA
- T1A 2G8
-